实践教程之如何对 PolarDB |
您所在的位置:网站首页 › 阿里云 免费吗 容量 › 实践教程之如何对 PolarDB |
PolarDB-X 为了方便用户体验,提供了免费的实验环境,您可以在实验环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实验,PolarDB-X 也提供免费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。 本期实验将指导您如何对PolarDB-X进行备份恢复。 本期免费实验地址 本期教学视频地址 前置准备假设已经根据前一讲内容完成了PolarDB-X的搭建部署,使用PolarDB-X Operator安装PolarDB-X,并且可以成功链接上PolarDB-X数据库。 启动转账业务本步骤将指导您如何使用账户转账场景模拟业务流量。 1.执行如下命令,创建 transfer.yaml vim transfer.yaml2.按i键进入编辑模式,将如下代码复制到文件中,然后按ECS退出编辑模式,输入:wq后按下Enter键保存并退出。 --- apiVersion: v1 kind: ConfigMap metadata: name: transfer-test-polardbx-config data: config.toml: | row_count = 100 initial_balance = 1000 verbose = true enable_cts = false for_polarx = true [transfer_simple] enabled = true threads = 1 [read_latest] enabled = false threads = 1 --- apiVersion: batch/v1 kind: Job metadata: name: transfer-test-polardbx spec: backoffLimit: 4 template: spec: restartPolicy: Never volumes: - name: config-toml configMap: name: transfer-test-polardbx-config items: - key: config.toml path: config.toml initContainers: - name: database-init image: mysql:5.7 env: - name: USER value: polardbx_root - name: PASSWD valueFrom: secretKeyRef: name: polardb-x key: polardbx_root command: - mysql args: - -h$(POLARDB_X_SERVICE_HOST) - -P$(POLARDB_X_SERVICE_PORT) - -u$(USER) - -p$(PASSWD) - -e - drop database if exists transfer_test; create database transfer_test character set utf8; - name: data-init image: polardbx/transfer-test:latest env: - name: USER value: polardbx_root - name: PASSWD valueFrom: secretKeyRef: name: polardb-x key: polardbx_root volumeMounts: - mountPath: /config.toml name: config-toml subPath: config.toml readOnly: true command: [ "/transfer" ] args: - prepare - -config=/config.toml - -dsn=$(USER):$(PASSWD)@tcp($(POLARDB_X_SERVICE_HOST):$(POLARDB_X_SERVICE_PORT))/transfer_test containers: - name: test image: polardbx/transfer-test env: - name: USER value: polardbx_root - name: PASSWD valueFrom: secretKeyRef: name: polardb-x key: polardbx_root volumeMounts: - mountPath: /config.toml name: config-toml subPath: config.toml readOnly: true command: [ "/transfer" ] args: - run - -config=/config.toml - -dsn=$(USER):$(PASSWD)@tcp($(POLARDB_X_SERVICE_HOST):$(POLARDB_X_SERVICE_PORT))/transfer_test ---3.执行如下命令,开启转账业务流量。 kubectl apply -f transfer.yaml4.执行如下命令,等待转账业务pod变成Running状态。 kubectl get pods -w5.按Ctrl+C键,退出。 连接PolarDB-X验证数据本步骤将指导您如何连接通过K8s部署的PolarDB-X集群。 1.执行如下命令,查看PolarDB-X集群登录密码。 kubectl get secret polardb-x -o jsonpath="{.data['polardbx_root']}" | base64 -d - | xargs echo "Password: "返回结果如下,您可以查看到PolarDB-X集群登录密码。 2.执行如下命令,将PolarDB-X集群端口转发到3306端口。 说明:使用MySQL Client方式登录通过k8s部署的PolarDB-X集群前,您需要进行获取PolarDB-X集群登录密码和端口转发。 kubectl port-forward svc/polardb-x 33063. 在实验页面,单击右上角的+图标,创建新的终端二。 4. 在终端二中,执行如下命令,连接PolarDB-X集群。 说明: 您需要将替换为实际获取到的PolarDB-X集群登录密码。如遇到mysql: [Warning] Using a password on the command line interface can be insecure.ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0报错,请您稍等一分钟,重新转发端口并连接PolarDB-X集群即可。 mysql -h127.0.0.1 -P3306 -upolardbx_root -p5. 执行如下SQL,验证数据一致性。 use transfer_test; select sum(balance) from accounts;6. 输入exit并回车,退出mysql命令行。 备份PolarDB-X本步骤介绍如何为一个PolarDB-X创建备份集。 1.回到终端一,按CTRL+C停止port-forward命令。 2.配置备份集存储方式。 说明:PolarDB-X 目前支持将备份集保存到 OSS、SFTP两种方式。本实验中,我们将备份集通过SFTP备份到实验机器的指定目录。 2.1 执行如下命令,创建备份集存储的配置文件backup-storage-patch.yaml. vim backup-storage-patch.yaml2.2 按i键进入编辑模式,将如下代码复制到文件中,并修改其中的host字段为实验创建资源的私网ip(如何获取参考下图) ,然后按ECS退出编辑模式,输入:wq后按下Enter键保存并退出。 2.3 执行如下命令,修改备份集存储配置。 kubectl -n polardbx-operator-system patch configmap polardbx-hpfs-config --patch-file backup-storage-patch.yaml2.4 执行如下命令重启hpfs 组件,让备份集存储配置生效。 kubectl -n polardbx-operator-system rollout restart daemonsets polardbx-hpfs3.为 PolarDB-X 集群进行备份。 3.1 执行如下命令,创建polardb-x-backup.yaml。 vim polardb-x-backup.yaml3.2 按i键进入编辑模式,将如下代码复制到文件中,然后按ECS退出编辑模式,输入:wq后按下Enter键保存并退出。 apiVersion: polardbx.aliyun.com/v1 kind: PolarDBXBackup metadata: name: polardb-x-backup spec: cluster: name: polardb-x retentionTime: 240h storageProvider: storageName: SFTP sink: default3.3 执行如下命令创建PolarDBXBackup对象,并对PolarDB-X集群进行备份。 kubectl apply -f polardb-x-backup.yaml3.4 执行如下命令观察备份状态,等到Phase 变为finished,即表示备份完成。 kubectl get pxb -w3.5按Ctrl+C键,退出。 恢复PolarDB-X本步骤介绍如何从备份集恢复出一个PolarDB-X集群。 1.执行如下命令,停止业务流量并删除当前PolarDB-X集群。 kubectl delete job --all kubectl delete pxc --all2.执行如下命令,创建polardbx-restore.yaml。 vim polardbx-restore.yaml3.按i键进入编辑模式,将如下代码复制到文件中,然后按ECS退出编辑模式,输入:wq后按下Enter键保存并退出。 apiVersion: polardbx.aliyun.com/v1 kind: PolarDBXCluster metadata: name: polardb-x-restore spec: topology: nodes: cn: replicas: 1 template: resources: limits: cpu: "2" memory: 4Gi requests: cpu: 100m memory: 1Gi dn: template: resources: limits: cpu: "1" memory: 2Gi requests: cpu: 100m memory: 1Gi restore: backupset: polardb-x-backup4.执行如下命令,开始恢复PolarDB-X。 kubectl apply -f polardbx-restore.yaml5. 执行如下命令,查看PolarDB-X集群创建状态。 kubectl get polardbxCluster polardb-x-restore -o wide -w返回结果如下,请您耐心等待七分钟左右,当PHASE显示为Running时,表示PolarDB-X集群已经恢复完成。 PolarDB-X集群已经恢复完成后,按Ctrl+C键,退出查看PolarDB-X集群创建状态。 6. 连接PolarDB-X集群,验证数据。 6.1 执行如下命令,查看PolarDB-X集群登录密码。 kubectl get secret polardb-x-restore -o jsonpath="{.data['polardbx_root']}" | base64 -d - | xargs echo "Password: "返回结果如下,您可以查看到PolarDB-X集群登录密码。 6.2 执行如下命令,将PolarDB-X集群端口转发到3306端口。 说明:使用MySQL Client方式登录通过k8s部署的PolarDB-X集群前,您需要进行获取PolarDB-X集群登录密码和端口转发。 kubectl port-forward svc/polardb-x-restore 33066.3 在实验页面,单击右上角的+图标,创建新的终端三。 6.4 在终端三种,执行如下命令,连接PolarDB-X集群。 说明: 您需要将替换为实际获取到的PolarDB-X集群登录密码。如遇到mysql: [Warning] Using a password on the command line interface can be insecure.ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0报错,请您稍等一分钟,重新转发端口并连接PolarDB-X集群即可。 mysql -h127.0.0.1 -P3306 -upolardbx_root -p6.5 执行如下SQL 验证数据,确认所有账户的余额总和仍是1000。 use transfer_test; select sum(balance) from accounts;原文链接 本文为阿里云原创内容,未经允许不得转载。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |